package com.YHVision.qiuzhike.model.vo;

import cn.hutool.json.JSONUtil;
import com.YHVision.qiuzhike.model.dto.chart.ChartAiQuestionContentDTO;
import com.YHVision.qiuzhike.model.entity.Chart;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * AI助手视图
 *
 * @author <a href="">YHVision-小y</a>
 * @from <a href="todo">爱编程学习圈</a>
 */
@Data
public class ChartVO implements Serializable {

    /**
     * id
     */
    private Long id;

    /**
     *  专业技能描述
     */
    private String skill;

    /**
     *  项目描述
     */
    private String project;

    /**
     *  工作内容描述
     */
    private String work;

    /**
     * 题目内容（json格式）
     */
    private List<ChartAiQuestionContentDTO> questionContent;

    /**
     * 创建用户 id
     */
    private Long userId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;


    /**
     * 创建用户信息
     */
    private UserVO user;

    /**
     * 封装类转对象
     *
     * @param chartVO
     * @return
     */
    public static Chart voToObj(ChartVO chartVO) {
        if (chartVO == null) {
            return null;
        }
        Chart chart = new Chart();
        BeanUtils.copyProperties(chartVO, chart);
        List<ChartAiQuestionContentDTO> tagList = chartVO.getQuestionContent();
        chart.setQuestionContent(JSONUtil.toJsonStr(tagList));
        return chart;
    }

    /**
     * 对象转封装类
     *
     * @param chart
     * @return
     */
    public static ChartVO objToVo(Chart chart) {
        if (chart == null) {
            return null;
        }
        ChartVO chartVO = new ChartVO();
        BeanUtils.copyProperties(chart, chartVO);
        String questionContent = chart.getQuestionContent();
        if(questionContent != null){
            chartVO.setQuestionContent(JSONUtil.toList(JSONUtil.parseArray(questionContent), ChartAiQuestionContentDTO.class));
        }
        return chartVO;
    }
}
